/*******************************二分查找******************************** */
// 适用于有序的顺序表
function binarySearch(sortedArr, key) {
  let start = 0
  let end = sortedArr.length-1
  let mid
  while (start < end) {
    // 寻找折半中值
    mid = Math.floor((end - start) / 2)
    // 中值与key相等，直接返回
    if(sortedArr[mid] === key) {
      return mid
    }
    //key大，则在整表的后半部分查找
    else if (key > sortedArr[mid]) {
      start = mid+1
    }
    //key小，则在整表的前半部分查找
    else {
      end = mid-1
    }
  }
  return -1
}

//测试用例
let arr = [7,10,13,16,19,29,32,33,37,41,43]
console.log(binarySearch(arr,7));